#include "travls.h"

int main()
{
	cout.setf(ios::fixed,ios::floatfield);
	srand(time(NULL));

	Map* mainMap = new Map();

	Population p(mainMap);
	Population p1(mainMap,p);
	Population p2(mainMap,p);
	int count;

	//swap=============================================================	
	#ifdef SWAP
		cout << "SWAP\n";
		count = 0;
		while(count++ < GENERATIONS)
		{

		#ifdef VERBOSE
				p.printStat();
		#endif
		#ifndef VERBOSE
				//cout << "gen: " << count-1 << endl;
				if((count-1) % GENERATION_PRINT == 0) p.printStat();
		#endif
			p.nextGeneration(1);
		}
		p.printStat();
	#endif
	//=================================================================

	//swap insert======================================================
		cout << "SWAPINSERT\n";
		count = 0;
		while(count++ < GENERATIONS)
		{
		#ifdef VERBOSE
				p1.printStat();
		#endif
		#ifndef VERBOSE
				//cout << "gen: " << count-1 << endl;
				if((count-1) % GENERATION_PRINT == 0) p1.printStat();
		#endif
				p1.nextGeneration(3);
		}
		p1.printStat();
	//=================================================================

	//insert===========================================================
		cout << "INSERT\n";
		count = 0;
		while(count++ < GENERATIONS)
		{
		#ifdef VERBOSE
				p2.printStat();
		#endif
		#ifndef VERBOSE
				//cout << "gen: " << count-1 << endl;
				if((count-1) % GENERATION_PRINT == 0) p2.printStat();
		#endif
				p2.nextGeneration(2);
		}
		p2.printStat();
	//=================================================================


	return 0;
}
